package br.com.beautycenter.DAO;

import br.com.beautycenter.bean.Despesas;
import br.com.beautycenter.hibernateUtil.DaoBase;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Query;

public class PersisteDespesas extends DaoBase<Despesas> { 
    public List<Despesas> retornarDespesas(){
        try {
            return findAll();
        } catch (Exception ex) {
            return new ArrayList<Despesas>();
        }
    }
      public Despesas retornarDespesaID(Despesas despesa){
        return getEntityManager().find(Despesas.class, despesa.getIdDespesa());
    }
    
    public List<Despesas> retornarDespesasPelaData(Date data){
        Query query = getEntityManager().createQuery("FROM Despesas d WHERE d.dataCadastro =:data");
        query.setParameter("data", data);
        
         try{
           return query.getResultList(); 
        }catch(Exception ex){
            return new ArrayList<Despesas>();
        }
    }
    
    public Double retornarSomatorioDespesasPorData(Date data){
        Query query = getEntityManager().createQuery("SELECT SUM(d.valor) FROM Despesas d WHERE "
                + "d.dataCadastro=:data");
        
        query.setParameter("data", data);
        
        try{
            return (Double)query.getSingleResult();
        }catch(Exception ex){
            ex.printStackTrace(); //exibe o erro que deu
            return 0.;
        }
    }
    
    public void salvar(Despesas despesa){
        save(despesa);
    }
    public void deletar(Despesas despesa){
        try{
            delete(despesa);
        }catch (Exception ex){
            ex.printStackTrace();
        }
    }
    
    public void atualizar(Despesas despesa){
        update(despesa);
    }
}



